set the buttonNum of me to the spriteNum of me - (the firstSprite of me - 1)
setPrevChoice(me)
end
on setPrevChoice me
set chosenOne to getAt(gEvaluationData, the questionNum of me)
if chosenOne = the buttonNum of me then
sendSprite(the spriteNum of me, #Toggle)
end if
end
on mouseDown me
set chosenOne to getAt(gEvaluationData, the questionNum of me)
if chosenOne = the buttonNum of me then
setAt(gEvaluationData, the questionNum of me, 0)
else
if chosenOne <> 0 then
unclickAnother(me, chosenOne)
end if
setAt(gEvaluationData, the questionNum of me, the buttonNum of me)
end if
end
on unclickAnother me, prevChoice
set otherSprite to the firstSprite of me + (prevChoice - 1)
sendSprite(otherSprite, #Toggle)
end
on getPropertyDescriptionList
set p_list to [#questionNum: [#comment: "Question number for this button:", #format: #integer, #range: [#min: 1, #max: 30], #default: 1], #firstSprite: [#comment: "First sprite of series:", #format: #integer, #range: [#min: 5, #max: 60], #default: 5]]
return p_list
end
on getBehaviorDescription
return "Each sprite will know its position in a group based on its sprite number." & RETURN & "It will also know what question it is applied to." & RETURN & "From these properties we can keep score in a global." & RETURN & "• Question number - choose from the range." & RETURN & "• First sprite - so the first sprite in the series gets a 1, etc." & RETURN & "NOTES:" & RETURN & "Uses global variable to keep track of button position, ON or OFF."